-------------------------
-- 【锁存器】
-- if/case语句实现锁存器的功能
-------------------------
-- 设计一个D锁存器，当使能信号en为高电平时，输出随输入变化，
-- 当en为低电平时，锁存数据
-------------------------



library ieee;
use ieee.std_logic_1164.all;

entity d_latch is
    port(
        en, d : in std_logic；
        q : out std_logic
    );
end d_latch;

architecture behave of d_latch is
begin

    -- if方式实现
    process(en, d)
    begin
        if en = '1' then
            q <= d;
        end if;
    end process;

    -- case方式实现
    process(en, d)
    begin
        case en is
            when '1' => q <= d;
            when others => null;
        end case;
    end process;

end behave;





